/*

* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Smart-Shop开源商城系统/ Java商城-首选电商平台系统 请务必保留此注释头信息
* |     开源地址: https://gitee.com/ningbo-qishan/gruul-mall
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     可正常分享和学习源码,未经授权 不可商用！
* |     商业版中台购买/开源版商业授权 联系技术客服
* |     官网:  https://www.73app.cn/
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Copyright (c) 2016-2999 宁波启山智软科技有限公司
* |     版权所有 ,侵权必究！
* ------------------------------------------------------------------------

*/
package com.medusa.gruul.platform.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.medusa.gruul.common.core.util.PageUtils;
import com.medusa.gruul.platform.api.entity.AgentVerify;
import com.medusa.gruul.platform.model.dto.agent.AgentApplyDto;
import com.medusa.gruul.platform.model.dto.agent.ListVerifyOptionDto;
import com.medusa.gruul.platform.model.dto.agent.MerchantsApplyAgentDto;
import com.medusa.gruul.platform.model.vo.ListVerifyVo;

/**
 * <p>
 * 代理申请审核表 服务类
 * </p>
 *
 * @author whh
 * @since 2020-10-04
 */
public interface IAgentVerifyService extends IService<AgentVerify> {

    /**
     * 申请代理
     *
     * @param applyDto com.medusa.gruul.platform.model.dto.agent.AgentApplyDto
     */
    void agentApply(AgentApplyDto applyDto);

    /**
     * 获取唯一邀请码
     *
     * @return 邀请码
     */
    String getCode();

    /**
     * 查询审核列表
     *
     * @param page             页数
     * @param size             条数
     * @param status           审核状态 1待审核 2:审核拒绝
     * @param startTime        申请开始时间
     * @param endTime          申请结束时间
     * @param search           搜索内容
     * @param refusedStartTime 拒绝开始时间 2019-11-11 11:23:23
     * @param refusedEndTime   拒绝结束时间 2019-11-11 11:23:23
     * @return
     */
    PageUtils<ListVerifyVo> listVerify(Integer page, Integer size, Integer status, String startTime, String endTime, String search, String refusedStartTime, String refusedEndTime);

    /**
     * 代理申请审核同意或拒绝
     *
     * @param optionDto com.medusa.gruul.platform.model.dto.agent.ListVerifyOptionDto
     */
    void listVerifyOption(ListVerifyOptionDto optionDto);

    /**
     * 根据id查询指定审核记录
     *
     * @param id 审核表id
     * @return com.medusa.gruul.platform.model.vo.ListVerifyVo
     */
    ListVerifyVo getByIdVo(Long id);

    /**
     * 商户申请成为代理
     *
     * @param applyAgentDto com.medusa.gruul.platform.model.dto.agent.MerchantsApplyAgentDto
     */
    void merchantsApplyAgent(MerchantsApplyAgentDto applyAgentDto);

    /**
     * 删除已拒绝的代理审核记录
     *
     * @param id 记录id
     */
    void deleteVerify(Long id);
}
